Today there exist many different formats for representing data in computing devices. Typically, in a computing device, data is stored in the form of computer files. A file format defines a particular way in which information is encoded for storage in a computer file. A computer file may have a certain structural organization of different types of data.
Different applications, such as those used in malware detection, software testing including detection of security vulnerabilities and others, may require describing a structure of a data format in a manner that allows manipulating and creating new data stored in this data format. Existing techniques for defining a structure of the data format employ Extensible Markup Language (XML) and textual representations of the structure. Such techniques may not be flexible enough to be used for defining complex structures or structures where elements are organized hierarchically. Further, C-like programming languages have been used to define a structure of the data format. However, while providing some improvements over the XML and textual representations, the methods that use the C-like programming languages may lack extensibility and a new description of the data format needs to be generated for each application.